define(function(require, exports, module) {
	
	var $ = require('$'), Overlay = require('./overlay'),

	ua = (window.navigator.userAgent || "").toLowerCase(), isIE6 = ua.indexOf("msie 6") !== -1 ;
	
	var b = (self.frameElement && self.frameElement.tagName == "IFRAME") ? window.parent.document.body : document.body;
	var d = (self.frameElement && self.frameElement.tagName == "IFRAME") ? window.parent.document : document;
	
	var body = $(b), doc = $(d);

	// Mask
	// ----------
	// 全屏遮罩层组件

	var Mask = Overlay.extend({

		attrs : {
			width : isIE6 ? doc.outerWidth(true) : '100%',
			height : isIE6 ? doc.outerHeight(true) : '100%',

			className : 'ui-mask',
			opacity : .2,
			backgroundColor : '#000',
			style : {
				position : isIE6 ? 'absolute' : 'fixed',
				top : 0,
				left : 0
			},

			align : {
				// undefined 表示相对于当前可视范围定位
				baseElement : isIE6 ? body : undefined
			},
			parentNode : b
		},

		show : function() {
			if (isIE6) {
				this.set('width', doc.outerWidth(true));
				this.set('height', doc.outerHeight(true));
			}
			return Mask.superclass.show.call(this);
		},

		setup : function() {
			// 加载 iframe 遮罩层并与 overlay 保持同步
			this._setupShim();
		},

		_onRenderBackgroundColor : function(val) {
			this.element.css('backgroundColor', val);
		},

		_onRenderOpacity : function(val) {
			this.element.css('opacity', val);
		}
	});

	// 单例
	module.exports = new Mask();

});